公共子表达式消除(CSE):一种编译器优化技术,用来识别程序中重复出现且结果相同的表达式(子表达式),并将其计算结果复用,从而减少重复计算、提升运行效率。(在有副作用、可能改变结果的情况下需要谨慎处理。)
/ˈkɑːmən ˌsʌbɪkˈsprɛʃən ɪˌlɪmɪˈneɪʃən/
The compiler applied common subexpression elimination to speed up the code.
编译器应用了公共子表达式消除来加速代码。
After building the control-flow graph, the optimizer performs common subexpression elimination only when it can prove the expressions are equivalent and free of side effects.
在构建控制流图之后,优化器只有在能证明表达式等价且不含副作用时,才会执行公共子表达式消除。
这是一个计算机科学/编译原理领域的术语组合:common(共同的、重复的)+ subexpression(子表达式)+ elimination(消除)。含义直观:把“重复出现的子表达式”通过优化“消除掉重复计算”。该概念在早期编译器优化研究中逐渐定型,常缩写为 CSE。